// // 前端自动化开发
// var gulp = require("gulp");
// // 处理css文件的任务
// var cssnano = require("gulp-cssnano");
// // 处理修改文件名的任务
// var rename = require("gulp-rename");
// // 处理js文件的任务
// var uglify = require("gulp-uglify");
// // 处理合并多个文件的任务
// var concat = require("gulp-concat");
// // 压缩图片 已经压缩过的生成的缓存
// var cache = require('gulp-cache');
// // 处理图片压缩任务
// var imagemin = require("gulp-imagemin");
// // 处理文件更改后，自动刷新浏览器的任务
// var bs = require("browser-sync").create();
// var sass = require("gulp-sass");
// // gulp-util : 这个插件中有一个方法log，可以打印出js的错误信息
// var util = require("gulp-util");
// var sourcemaps = require("gulp-sourcemaps");
//
// var path = {
//     // ** 文件夹下任意文件
//     "html" : "./templates/**/",
//     "css" : "./src/css/**/",
//     "js" : "./src/js/",
//     "images" : "./src/images/",
//     "css_dist" : "./dist/css/",
//     "js_dist" : "./dist/js/",
//     "images_dist" : "./dist/images/",
//
// };
//
// // 处理html文件的任务
// gulp.task("html",function () {
//     gulp.src(path.html + "*.html")
//         .pipe(bs.stream())
// });
//
// // 定义一个css的任务
// gulp.task("css",function () {
//     gulp.src(path.css + "*.scss")
//         // .on("error",sass.logError) 会提示语法错误
//         .pipe(sass().on("error",sass.logError))
//         .pipe(cssnano())
//         .pipe(rename({"suffix":".min"}))
//         .pipe(gulp.dest(path.css_dist))
//         .pipe(bs.stream())
// });
//
// // 定义处理js文件的任务
// gulp.task("js", function () {
//    gulp.src(path.js + "*.js")
//        .pipe(sourcemaps.init())
//        .pipe(uglify().on("error",util.log))
//        .pipe(rename({"suffix":".min"}))
//        .pipe(sourcemaps.write())
//        .pipe(gulp.dest(path.js_dist))
//        .pipe(bs.stream())
// });
//
// // 定义处理图片文件的任务
// gulp.task("images",function () {
//     gulp.src(path.images + "*.*")
//         .pipe(cache(imagemin()))
//         .pipe(gulp.dest(path.images_dist))
//         .pipe(bs.stream())
// });
//
// // 定义监听文件修改的任务
// gulp.task("watch", function () {
//     gulp.watch(path.html + "*.html", ['html']);
//     gulp.watch(path.css + "*.scss", ['css']);
//     gulp.watch(path.js + "*.js", ['js']);
//     gulp.watch(path.images + "*.*", ['images']);
//
// });
//
// // 初始化browser-sync 的任务
// gulp.task("bs",function () {
//     bs.init({
//         "server" : {
//             "baseDir" : "./"
//         }
//     });
// });
//
// // 创建一个默认的任务
// gulp.task("default", ["bs", "watch"]);




var gulp = require("gulp");
var cssnano = require("gulp-cssnano");
var rename = require("gulp-rename");
var uglify = require("gulp-uglify");
var concat = require("gulp-concat");
var cache = require('gulp-cache');
var imagemin = require('gulp-imagemin');
var bs = require('browser-sync').create();
var sass = require("gulp-sass");
// gulp-util：这个插件中有一个方法log，可以打印出当前js错误的信息
var util = require("gulp-util");
// 如果js 有问题或者bug了 对于压缩文件 可以找到原来的出错位置
var sourcemaps = require("gulp-sourcemaps");


var path = {
    'html': './templates/**/',
    'css': './src/css/**/',
    'js': './src/js/',
    'images': './src/images/',
    'css_dist': './dist/css/',
    'js_dist': './dist/js/',
    'images_dist': './dist/images/'
};

// 处理html文件的任务
gulp.task("html",function () {
    gulp.src(path.html + '*.html')
        .pipe(bs.stream())
});

// 定义一个css的任务
gulp.task("css",function () {
    gulp.src(path.css + '*.scss')
        .pipe(sass().on("error",sass.logError))
        .pipe(cssnano())
        .pipe(rename({"suffix":".min"}))
        .pipe(gulp.dest(path.css_dist))
        .pipe(bs.stream())
});

// 定义处理js文件的任务
gulp.task("js",function () {
    gulp.src(path.js + '*.js')
        // 定位找出压缩后不好找的文件位置
        .pipe(sourcemaps.init())
        // 执行js的时候出现错误，会报响应的错误
        .pipe(uglify().on("error",util.log))
        .pipe(rename({"suffix":".min"}))
        // 打印错误
        .pipe(sourcemaps.write())
        .pipe(gulp.dest(path.js_dist))
        .pipe(bs.stream())
});

// 定义处理图片文件的任务
gulp.task('images',function () {
    gulp.src(path.images + '*.*')
        .pipe(cache(imagemin()))
        .pipe(gulp.dest(path.images_dist))
        .pipe(bs.stream())
});

// 定义监听文件修改的任务
gulp.task("watch",function () {
    gulp.watch(path.html + '*.html',['html']);
    gulp.watch(path.css + '*.scss',['css']);
    gulp.watch(path.js + '*.js',['js']);
    gulp.watch(path.images + '*.*',['images']);
});

// 初始化browser-sync的任务
gulp.task("bs",function () {
    bs.init({
        'server': {
            'baseDir': './'
        }
    });
});

// 创建一个默认的任务
// gulp.task("default",['bs','watch']);
// django服务下
gulp.task("default",['watch']);

